package com.jimmy.springcloud.service;

import com.jimmy.springcloud.entities.Dept;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @version 1.0
 * @ ClassName DeptClientServiceFallbackFactory
 * <p> 加上服务端降级处理也是在客户端处理的，服务挂了响应了自已定义的信息友好提示降低服务器的压力
 * http://localhost/consumer/dept/get/2 服务器挂了不会提示不友好的页面了，而是提示了自已的友好提示
 * @ author JIMMY
 * @ Date 2020/11/17 0017 下午 8:57
 */
@Component // 不要忘记添加，不要忘记添加
public class DeptClientServiceFallbackFactory implements FallbackFactory<DeptClientService>
{
    @Override
    public DeptClientService create(Throwable throwable)
    {
        return new DeptClientService() {
            @Override
            public Dept get(long id)
            {
                return new Dept().setId(id).setName("该ID：" + id + "没有没有对应的信息,Consumer客户端提供的降级信息,此刻服务Provider已经关闭")
                        .setDbSource("no this database in MySQL");
            }

            @Override
            public List<Dept> list()
            {
                return null;
            }

            @Override
            public boolean add(Dept dept)
            {
                return false;
            }

            @Override
            public Dept getDepById(long id) {
                return null;
            }

            @Override
            public Dept get3(long id) {
                return null;
            }

//            @Override
//            public Dept get2(long id) {
//                return null;
//            }
        };
    }
}
